.NET Framework only
.NET methods (and properties) may specify a parameter to be a delegate. A delegate is a place holder for a function, normally with a particular signature and result type, that should be supplied when the method is called. Sometimes the signature of a .NET method that takes a delegate as a parameter does not provide enough information for Dyalog to determine automatically what type of delegate is required. 2016⌶ allows you to specify the type so that Dyalog can perform the necessary conversion(s) at run-time.
Y is a 2-element array. The first element is a .NET type that inherits from the abstract .NET Class System.Delegate. The second item is either the name of or the ⎕OR of an APL function which is to be invoked via a .NET method or property.
The result R is a ref to an instance of a .NET type specified by the first element of Y, which internally is associated with the function identified by the second element of Y.
∇foo∇ ∇ foo(ev arg) [1] ⍝ Callback for .NET method ∇ ⎕USING←'System' del←2016⌶ EventHandler'foo' del System.EventHandler
Then, when calling a .NET method that requires a Delegate of type System.Eventhandler, but whose signature is imprecise in this respect, the object del should be used instead.